﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PetSoft.GestionRecursos;
using PetSoft.GUI.Compras;
using Business_Logic;

namespace PetSoft.GUI.GestRecursos
{
    public partial class GUINuevoProd : Form
    {
        public int regCorrecto;
        public GUINuevoProd()
        {
            InitializeComponent();
            this.otTipoTXT.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);
            this.precTXT.KeyPress += new KeyPressEventHandler(Utils.DecimalesPuntoTB);
            this.prodDescTXT.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);
            this.prodMarcTXT.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);
            this.prodNomTXT.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);
            this.Load += new EventHandler(cargaTipoProd_Load);
            this.regCorrecto = 0;
        }

        private void buscProvBTN_Click(object sender, EventArgs e)
        {
        	GUIBuscarProveedor ventBuscar = new GUIBuscarProveedor();
        	ventBuscar.Show();
        }

         private void cargaTipoProd_Load(object sender, EventArgs e){
        	
//        	//Carga de los datos en el combobox
        	BLTipoProducto tipo = new BLTipoProducto();
        	this.prodTipoCB.DataSource = tipo.getAllTipoProd();
            this.prodTipoCB.ValueMember = "codigo";
            this.prodTipoCB.DisplayMember = "descripcion";
            
            BLUnidadProducto unidad = new BLUnidadProducto();
            this.prodUniCB.DataSource = unidad.getAllUnidadProd();
            this.prodUniCB.ValueMember = "codigo";
            this.prodUniCB.DisplayMember = "descripcion";
        	
        	//NO LLAMAR AL DAO DESDE AQUI!!!!!!!!!!!!!!!!!!!!!!
        	
        	//Carga de los datos en la tabla de productos
        }
        
        public void nueProdGBTN_Click(object sender, EventArgs e)
        {
        	String msgError = "Debe completar los siguientes campos obligatorios:";
        	BLProducto prod;
        	prod = new BLProducto();
	        String nom = this.prodNomTXT.Text;
	        String desc = this.prodDescTXT.Text;
	        String marca = this.prodMarcTXT.Text;
	        String nomOTIpo = this.otTipoTXT.Text;
	        int codTipo = (int) this.prodTipoCB.SelectedValue;
	        int uni = (int) this.prodUniCB.SelectedValue;
	        int aux = 0;
	        float precio=0;
	        if(nom==""){
	        	msgError = msgError + Environment.NewLine + "            -Nombre";
	        	aux++;
	        }
	        if(desc==""){
	        	msgError = msgError + Environment.NewLine + "            -Descripcion";
	        	aux++;
	        }
	        if(codTipo==-1){
	        	msgError = msgError + Environment.NewLine + "            -Tipo Producto";
	        	aux++;
	        }
	        if(uni==-1){
	        	msgError = msgError + Environment.NewLine + "            -Unidad de Producto";
	        	aux++;
	        }
	        if((this.otTipoTXT.Enabled==true)&&(nomOTIpo=="")){
	        	msgError = msgError + Environment.NewLine + "            -Nombre del Otro Tipo";
	        	aux++;
	        }
	        try{
	        	precio = Single.Parse(this.precTXT.Text);
	        }
	        catch{
	        	msgError = msgError + Environment.NewLine + "            -Precio";
	        	aux++;
	        }
	        if(aux!=0)
	        	MessageBox.Show(msgError);
	                
	        if((nom!="")&&(desc!="")&&(uni!=-1)&&((codTipo!=-1)||((codTipo==5)&&(nomOTIpo!="")))&&(precio!=0)){
	        	try{
		       		int res = prod.nuevoProducto(nom, desc, uni, codTipo, marca, nomOTIpo, precio);
		       		if(res==0){
		       			MessageBox.Show("Se presento un error y no se pudo registrar el nuevo producto.");
		       		}
		       		else{
			       		if(res==1){
			      			MessageBox.Show("El nuevo producto se registro correctamente.");
			       			this.Close();
	                        this.regCorrecto = 1;
			       		}
			       		else{
			       			MessageBox.Show("Ese producto ya se encuentra registrado.");
			       		}
		       		}
		       	}
		       	catch{
		       		MessageBox.Show("Hubo problemas en el registro.");
		       	}
	        }	   	
	        	
        }
        
        
        
        void NueProdCBTNClick(object sender, EventArgs e)
        {
        	this.Close();
        }
        
        void ProdTipoCBSelectedIndexChanged(object sender, EventArgs e)
        {
        	if(this.prodTipoCB.Text=="OTROS"){
        		this.otLLBL.Text = "Otro Tipo*";
        		this.otTipoTXT.Enabled = true;
        	}
        	else{
        		this.otLLBL.Text = "Otro Tipo:";
        		this.otTipoTXT.Text = "";
        		this.otTipoTXT.Enabled = false;
        	}
        }
    }
}
